// 1.字符串类型
let myname:string="张三"
let gg="good game";
// 2 number类型
let age:number=19;
let num=99;
// 3.boolean 布尔类型
let flag:boolean=true;
flag=false;
// 4. any类型 任意类型
let hh; //any
hh=99;
hh="你好"
let kk:any="今天星期三";
kk=99;
// 5 undefined 未赋值 未定义
let sa:undefined;

// 6  null 空类型
let ka:null=null;
// 7.  联合类型  string|number  
  let ab:string|number=88;
  ab="第三方"
// // 7 Array 数组类型
  let list=[1,3,4,"sdf"];
  let arr1:number[]=[3,4,5]
  let arr:Array<number>=[1,2,3]
  let arr2:Array<string|number>=[1,23,"sdfsdf"]
  let arr3:Array<any>=[123,34,{name:1}]
// 8. 元组类型 Tuple 元组类型允许表示一个已知元素数量和类型的数组
 let t1:[string,number,string,Array<number>,boolean];
t1=["sdf",123,"df",[1,2],true]

// 9 枚举 使用枚举类型可以为一组数值赋予友好的名字。
enum Color {
  Red=4,    //4
  Green=9,  //5
  Blue=7,   //6
  Yellow=10 //7
}
console.log(Color.Green)
// 10 对象类型
let obj:object={
  name:"王",
  age:18
}
// 11 :void 表示没有任何类型 跟any 相反
function say():void{
  console.log("你好")
}
// 类型推断
  let ccc="你好"

// 12 类型断言
  function run(nu){
       nu=nu.toStirng();
    // 类型断言1  (<sting>变量)
      console.log((<string>nu).length)
      // 类型断言2 (变量 as string)
      console.log((nu as string).length)
  }
  run(234234);

  